﻿namespace Shapes
{
    using System.Drawing;

    /// <summary>
    /// Base Class
    /// </summary>
    public abstract class Shape
    {
        #region Constructors

        /// <summary>
        /// Initialize new shape
        /// </summary>
        public Shape()
            : this(false, new Point(0, 0), 3, 3)
        {
        }

        /// <summary>
        /// Initialize new shape with params
        /// </summary>
        /// <param name="isFilled">Is this shape filled?</param>
        /// <param name="controlPoint">Control Point (X,Y)</param>
        /// <param name="height">Height</param>
        /// <param name="width">Width</param>
        public Shape(bool isFilled, Point controlPoint, int height, int width)
        {
            IsFilled = isFilled;
            ControlPoint = controlPoint;
            Height = height;
            Width = width;
        }

        #endregion

        #region Properties

        /// <summary>
        /// Is Filled?
        /// </summary>
        public bool IsFilled { get; set; }

        /// <summary>
        /// Control Point
        /// </summary>
        public Point ControlPoint { get; set; }

        /// <summary>
        /// Height
        /// </summary>
        public int Height { get; set; }

        /// <summary>
        /// Width
        /// </summary>
        public int Width { get; set; }

        #endregion

        #region Methods

        /// <summary>
        /// Draw shape
        /// </summary>
        public virtual void Draw() { }

        #endregion
    }
}
